#include "comm.hpp"
#include "Log.hpp"

int main()
{
    key_t key = CreatKey();
    int fd = Open(FIFO_FILE,WRITER);
    //创建相同的Key值
    Log() <<"key :" <<key << endl;

    //获取 shmid 
    int shmid = shmget(key,MEM_SIZE,IPC_CREAT);
    if(shmid < 0)
    {
        Log()<<"shmget:" << strerror(errno) << endl;
        return 2;
    }

    //获取成功之后挂接
    char* str = (char*)shmat(shmid,nullptr,0);

    while(true)
    {
        printf("Please Enter# ");
        fflush(stdout);
        ssize_t s = read(0,str,MEM_SIZE);
        if(s > 0)
        {
            str[s] = '\0';
        }
        Signal(fd);
    }

    //用它  
    //没有使用任何的系统调用接口
    // int cnt = 0;
    // while(cnt <= 26)
    // {
    //     str[cnt] = 'A' + cnt;
    //     ++cnt;
    //     str[cnt] = '\0';
    //     sleep(1);
    // }


    //去关联
    shmdt(str);

    //不用删除共享内存 共享内存的创建和销毁全权由Ser管理
    return 0;
}